<!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org">
<head>
    <title th:text="${information.id == null ? '发布新资讯' : '编辑资讯'}"></title>
    <style>
        .container { max-width: 800px; margin: 20px auto; padding: 20px; background: #f9f9f9; border-radius: 8px; box-shadow: 0 2px 5px rgba(0,0,0,0.1); }
        .form-group { margin-bottom: 20px; }
        .form-group label { display: block; margin-bottom: 5px; font-weight: bold; }
        .form-group input[type="text"], .form-group textarea, .form-group input[type="file"] {
            width: 100%; padding: 8px; box-sizing: border-box; border: 1px solid #ccc; border-radius: 4px;
        }
        .image-preview-container { margin-top: 15px; }
        .current-image-label, .preview-label { font-weight: bold; color: #555; }
        .current-image, #imagePreview {
            display: block;
            margin-top: 10px;
            max-width: 300px;
            max-height: 200px;
            border: 1px solid #ddd;
            border-radius: 4px;
        }
        /* 默认隐藏新图片预览框 */
        #imagePreview { display: none; }
        button[type="submit"] { padding: 10px 20px; background-color: #007bff; color: white; border: none; border-radius: 5px; cursor: pointer; }
        button[type="submit"]:hover { background-color: #0056b3; }
    </style>
</head>
<body>
<div th:replace="~{fragments/header :: header}"></div>

<div class="container">
    <h2 th:text="${information.id == null ? '发布新资讯' : '编辑资讯'}"></h2>
    <form th:action="${information.id == null ? '/info/add' : '/info/edit/' + information.id}" th:object="${information}" method="post" enctype="multipart/form-data">
        <div class="form-group">
            <label for="infoTitle">标题:</label>
            <input type="text" id="infoTitle" th:field="*{infoTitle}" required>
        </div>
        <div class="form-group">
            <label for="infoMain">内容:</label>
            <textarea id="infoMain" th:field="*{infoMain}" rows="10" required></textarea>
        </div>
        <div class="form-group">
            <label for="imageFile">封面图:</label>
            <input type="file" id="imageFile" name="imageFile" accept="image/*">
        </div>

        <div class="image-preview-container">
            <div th:if="${information.id != null and information.infoImage != null}">
                <p class="current-image-label">当前封面图:</p>
                <img class="current-image" th:src="@{${information.infoImage}}" alt="当前封面图">
            </div>

            <div>
                <p class="preview-label">新图片预览:</p>
                <img id="imagePreview" src="#" alt="您选择的图片预览" />
            </div>
        </div>

        <button type="submit">发布</button>
    </form>
</div>

<script>
    // 监听ID为 'imageFile' 的文件输入框的 change 事件
    document.getElementById('imageFile').addEventListener('change', function(event) {

        const preview = document.getElementById('imagePreview'); // 获取用于预览的img元素
        const file = event.target.files[0]; // 获取用户选择的第一个文件
        const reader = new FileReader(); // 创建一个文件读取器

        // 定义当文件读取完成后的操作
        reader.onloadend = function() {
            preview.src = reader.result; // 将文件的内容（作为Data URL）赋值给预览img的src属性
            preview.style.display = 'block'; // 将预览img元素设置为可见
        }

        // 如果用户确实选择了一个文件
        if (file) {
            reader.readAsDataURL(file); // 就开始读取这个文件
        } else {
            // 否则，如果用户取消了选择，就隐藏预览
            preview.src = "";
            preview.style.display = 'none';
        }
    });
</script>

</body>
</html>